package ModelLager;
import java.util.ArrayList;

/**
 * Write a description of class KundeContainer here.
 * 
 * @author (Gruppe 5) 
 * @version (a version number or a date)
 */
public class KundeContainer
{
    private ArrayList<Kunde> kunder;
    private static KundeContainer instance;
    
    /**
     * KundeContainer Constructor
     *
     */
    private KundeContainer()
    {
        kunder = new ArrayList<Kunde>();
    }
    
    /**
     * Method getInstance
     *
     * @return The return value
     */
    public static KundeContainer getInstance()
    {
        if(instance == null)
        {
            instance = new KundeContainer();
        }
        return instance;
    }
    
    /**
     * Method addKunde
     *
     * @param k A parameter
     * 
     * Tilføjer en kunde til kunder.
     */
    public void addKunde(Kunde k)
    {
        kunder.add(k);
    }
    
    /**
     * Method removeKunde
     *
     * @param kID A parameter
     * @return The return value
     * 
     * Methoden bruger id til at finde en bestemt kunde og sletter
     * den fra kunder og retunere en true found.
     */
    public boolean removeKunde(int kID)
    {
        int index = 0;
        boolean found = false;
        while(index < kunder.size() && !found)
        {   
            int i = kunder.get(index).getID();
            if(i == kID)
            {
                kunder.remove(index);
                found = true;
            }
             else
            {
                index++;
            }
        }
        
        return found;
    }
    
    /**
     * Method getArrayList
     *
     * @return The return value
     * 
     * Retunere hele Kunde ArrayListen.
     */
    public ArrayList<Kunde> getArrayList()
    {
        return kunder;
    }
    
    /**
     * Method getKundeIndex
     *
     * @param index A parameter
     * @return The return value
     * 
     * Retunere en kunde med den index der er blevet angivet.
     */
    public Kunde getKundeIndex(int index)
    {
        return kunder.get(index);
    }
    
    /**
     * Method findKunde
     *
     * @param id A parameter
     * @return The return value
     * 
     * Methoden bruger id til at finde en bestemt kunde med
     * det samme id.
     */
    public Kunde findKunde(int id)
    {
        int index = 0;
        Kunde k = null;
        boolean found = false;
        
        while(index < kunder.size() && !found)
        {
            k = kunder.get(index);
            
            if(k.getID() == id)
            {
                found = true;
            }
            else
            {
                index++;
            }
        }
        
        if(found)
        {
            return kunder.get(index);
        }
        else
        {
            return null;
        }
    }
}
